package com.xuecheng.system.controller;

import com.alibaba.fastjson.JSON;
import com.xuecheng.commons.enums.ErrorCode;
import com.xuecheng.commons.model.vo.AuthInfo;
import com.xuecheng.commons.model.vo.CompanyVo;
import com.xuecheng.commons.model.vo.ResponseResult;

import com.xuecheng.commons.utils.BeanHelper;
import com.xuecheng.commons.utils.JwtUtils;
import com.xuecheng.system.domain.Company;
import com.xuecheng.web.interceptor.AuthInfoHolder;
import io.jsonwebtoken.Claims;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.xuecheng.system.service.CompanyService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;

import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;

/**
 * <p>
 * 教育机构前端控制器
 * </p>
 *
 * @author itheima
 */
@Slf4j
@RestController
@RequestMapping("/company")
public class CompanyController {

    @Autowired
    private CompanyService  companyService;

    /**
     * 查询当前登录用户的所属机构信息
     *  请求路径：GET /company/mine
     *  请求头：
     *      Authorization:(登陆时颁布的token)
     *  响应数据：
     *      responseResult<companyVo>
     *
     */
    @GetMapping("mine")
    public ResponseResult mine(){
        //从线程中获取当前用户数据
        AuthInfo info = AuthInfoHolder.getAuthInfo();
        //4、根据id查询企业数据
        Company company = companyService.getById(info.getCompanyId());
        //创建vo对象（只会对相同属性名和类型相同的字段，自动赋值）
        CompanyVo vo = BeanHelper.copyProperties(company, CompanyVo.class);//(原始对象，转换Java对象.class)
        //5、构造返回
        return ResponseResult.okResult(vo);



    }

    //@GetMapping("mine")
    //    public ResponseResult mine(@RequestHeader("Authorization") String token) {
    //        //1、校验token
    //        Boolean verifyToken = JwtUtils.verifyToken(token);
    //        if (!verifyToken) {
    //            throw new BusinessException(ErrorCode.ERROR);
    //        }
    //        //2、解析token
    //        Claims body = JwtUtils.parserToken(token).getBody();
    //
    //        //3、获取企业id
    //        Long companyId = body.get("companyId", Long.class);
    //
    //        //4、根据id查询企业数据
    //        Company company = companyService.getById(companyId);
    //        //创建vo对象（只会对相同属性名和类型相同的字段，自动赋值）
    //        CompanyVo vo = BeanHelper.copyProperties(company, CompanyVo.class);//(原始对象，转换Java对象.class)
    //        //5、构造返回
    //        return ResponseResult.okResult(vo);
    //
    //
    //
    //    }


}
